﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace TorneoLoL
{
    public partial class FormEncuentros : Form
    {
        Conexion conexion = new Conexion();
        DataSet ds;
        String ConsultaSQL;

        public FormEncuentros()
        {
            InitializeComponent();
            this.Text = "Encuentros";
            this.FormBorderStyle = FormBorderStyle.None;
          
        }

        private void FormEncuentros_Load(object sender, EventArgs e)
        {
            ds = new DataSet();
            ConsultaSQL = "select Encuentros.E_IdPartida as[Código partida], " +
                "Encuentros.E_IdEncuentro as[Código encuentro], Encuentros.E_NEncuentro as[Número encuentro], " +
                "Teams.T_NombreTeam as[Ganador] from Encuentros inner join Teams " +
                "on Encuentros.E_idGanador = Teams.T_IdTeam";

            conexion.consultarDataSet( ref ds, "Encuentros", ConsultaSQL );
            grdEncuentros.DataSource = ds.Tables["Encuentros"];
            grdEncuentros.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

            iniciarControles();
 
          /*  ConsultaSQL = "select* from DesempeñoDeJugadorXEncuentro";
            conexion.consultarDataSet( ref ds, "DXE", ConsultaSQL );
            grdDXE.DataSource = ds.Tables["DXE"];
          */
          

        }
        private void iniciarControles()
        {
            CargarComboNumerico( ref cmbIdEncuentro );
            CargarComboNumerico( ref cmbIdPartida );
            CargarComboNumerico( ref cmbTeam );
        }
        private void CargarComboTexto(ref ComboBox NombreCombo)
        {
            NombreCombo.Items.Add( "" );
            NombreCombo.Items.Add( "Comienza con:" );
            NombreCombo.Items.Add( "Termina en:" );
            NombreCombo.Items.Add( "Contiene:" );
            NombreCombo.Items.Add( "Es igual a:" );
        }
        private void CargarComboNumerico(ref ComboBox NombreCombo)
        {
            NombreCombo.Items.Add( "" );
            NombreCombo.Items.Add( "Igual a:" );
            NombreCombo.Items.Add( "Mayor a:" );
            NombreCombo.Items.Add( "Menor a:" );
        }

        private void grdEncuentros_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            int row = grdEncuentros.CurrentRow.Index;
            if (grdEncuentros[0, row].Value.ToString() == string.Empty) return;

            Conexion conexion = new Conexion();
            DataSet ds = new DataSet();
            string ConsultaSQL;

            grdDXE.DataSource = null;

            ConsultaSQL = "select Jugadores.J_Nick as[Nick], Teams.T_NombreTeam as[Team], " +
                "DesempeñoDeJugadorXEncuentro.DJ_Personaje as[Personaje], " +
                "DesempeñoDeJugadorXEncuentro.DJ_CS as[Creep Score], DesempeñoDeJugadorXEncuentro.DJ_K as[Kills], " +
                "DesempeñoDeJugadorXEncuentro.DJ_D as[Deaths], DesempeñoDeJugadorXEncuentro.DJ_A as[Assists] " +
                "from DesempeñoDeJugadorXEncuentro inner join Encuentros " +
                "on DesempeñoDeJugadorXEncuentro.DJ_IdEncuentro = Encuentros.E_IdEncuentro " +
                "inner join Jugadores on DesempeñoDeJugadorXEncuentro.DJ_IdJugador = Jugadores.J_Id " +
                "left join Teams on Jugadores.J_IdTeam = Teams.T_IdTeam " +
                "where DesempeñoDeJugadorXEncuentro.DJ_IdEncuentro = " + grdEncuentros[0, row].Value.ToString(); 
            
            conexion.consultarDataSet(ref ds, "DXE", ConsultaSQL);
            grdDXE.DataSource = ds.Tables["DXE"];

        }

        private void btnQuitarFiltro_Click(object sender, EventArgs e)
        {
            Conexion conexion = new Conexion();
            DataSet ds = new DataSet();
            String ConsultaSQL;

            grdEncuentros.DataSource = null;
            grdDXE.DataSource = null;

            ConsultaSQL = "select Encuentros.E_IdPartida as[Código partida], " +
                "Encuentros.E_IdEncuentro as[Código encuentro], Encuentros.E_NEncuentro as[Número encuentro], " +
                "Teams.T_NombreTeam as[Ganador] from Encuentros inner join Teams " +
                "on Encuentros.E_idGanador = Teams.T_IdTeam";

            conexion.consultarDataSet(ref ds, "Encuentros", ConsultaSQL);
            grdEncuentros.DataSource = ds.Tables["Encuentros"];
        }

        private void btnFiltrar_Click(object sender, EventArgs e)
        {

            Conexion conexion = new Conexion();
            DataSet ds = new DataSet();


            grdEncuentros.DataSource = null;

            string consulta = "select Encuentros.E_IdPartida as[Código partida], "+
                "Encuentros.E_IdEncuentro as[Código encuentro], Encuentros.E_NEncuentro as[Número encuentro], " +
                "Teams.T_NombreTeam as[Ganador] from Encuentros inner join Teams " +
                "on Encuentros.E_idGanador = Teams.T_IdTeam ";

            if (cmbIdEncuentro.Text != string.Empty && cmbIdEncuentro.FindString(cmbIdEncuentro.Text) != -1 && txtIdEncuentro.Text != string.Empty)
            {
                

                if (consulta != "select Encuentros.E_IdPartida as[Código partida], "+
                "Encuentros.E_IdEncuentro as[Código encuentro], Encuentros.E_NEncuentro as[Número encuentro], " +
                "Teams.T_NombreTeam as[Ganador] from Encuentros inner join Teams " +
                "on Encuentros.E_idGanador = Teams.T_IdTeam ")
                    consulta += " and ";
                else
                    consulta += "where ";
                switch (cmbIdEncuentro.Text)
                {
                    case "Igual a:":
                        consulta += "E_idEncuentro = " + txtIdEncuentro.Text.ToString();
                        break;

                    case "Mayor a:":
                        consulta += "E_idEncuentro  > " + txtIdEncuentro.Text.ToString();
                        break;

                    case "Menor a:":
                        consulta += "E_idEncuentro < " + txtIdEncuentro.Text.ToString();
                        break;
                }
            }
            if (cmbIdPartida.Text != string.Empty && cmbIdPartida.FindString(cmbIdPartida.Text) != -1 && txtIdPartida.Text != string.Empty)
            {
                

                if (consulta != "select Encuentros.E_IdPartida as[Código partida], "+
                "Encuentros.E_IdEncuentro as[Código encuentro], Encuentros.E_NEncuentro as[Número encuentro], " +
                "Teams.T_NombreTeam as[Ganador] from Encuentros inner join Teams " +
                "on Encuentros.E_idGanador = Teams.T_IdTeam ")
                    consulta += " and ";
                else
                    consulta += "where ";
                switch (cmbIdPartida.Text)
                {
                    case "Igual a:":
                        consulta += "E_idPartida = " + txtIdPartida.Text.ToString();
                        break;

                    case "Mayor a:":
                        consulta += "E_idPartida > " + txtIdPartida.Text.ToString();
                        break;

                    case "Menor a:":
                        consulta += "E_idPartida < " + txtIdPartida.Text.ToString();
                        break;
                }
            }
            if (cmbTeam.Text != string.Empty && cmbTeam.FindString(cmbTeam.Text) != -1 && txtTeam.Text != string.Empty)
            {
               
                
                if (consulta != "select Encuentros.E_IdPartida as[Código partida], "+
                "Encuentros.E_IdEncuentro as[Código encuentro], Encuentros.E_NEncuentro as[Número encuentro], " +
                "Teams.T_NombreTeam as[Ganador] from Encuentros inner join Teams " +
                "on Encuentros.E_idGanador = Teams.T_IdTeam ")
                    consulta += " and ";
                else
                    consulta += "where ";
                switch(cmbTeam.Text)
                {
                    case "Igual a:":
                        consulta += "E_idGanador = " + txtTeam.Text.ToString();
                        break;

                    case "Mayor a:":
                        consulta += "E_idGanador > " + txtTeam.Text.ToString();
                        break;

                    case "Menor a:":
                        consulta += "E_idGanador < " + txtTeam.Text.ToString();
                        break;
                }
            }


            conexion.consultarDataSet(ref ds, "Encuentros", consulta);
            grdEncuentros.DataSource = ds.Tables["Encuentros"];
        }
    }
}
